import vue from '@vitejs/plugin-vue'
import path from 'path' // 需要安装的插件@types/node
import { defineConfig } from 'vite'
// import { createStyleImportPlugin, ElementPlusResolve } from 'vite-plugin-style-import'

const resolve = (dir: string) => path.join(__dirname, dir)

// https://vitejs.dev/config/
export default defineConfig({
    publicDir: 'public', // 公共文件路径,会被复制到outDir 根目录
    // 路径相关规则
    resolve: {
        alias: {
            '@': resolve('src') // 取相对路径别名, @表示当前的src目录路径
        }
    },
    // 为服务器设置代理规则
    server: {
        host: '0.0.0.0', // 指定服务器主机名
        port: 8080, // 指定服务端口号
        open: true, // 运行自动打开浏览器
        // https: false, // 关闭https
        strictPort: true, // 若3333端口被占用,直接结束项目
        proxy: {
            '/api': {
                target: 'http://192.168.0.115:5000',
                changeOrigin: true
                // rewrite: (path) => path.replace(/^\/api/, '')
            }
        }
    },
    // 打包相关规则
    build: {
        target: 'es2020', //指定es版本,浏览器的兼容性
        outDir: 'dist', //指定打包输出路径
        assetsDir: 'assets', //指定静态资源存放路径
        cssCodeSplit: true, //css代码拆分,禁用则所有样式保存在一个css里面
        sourcemap: false, //是否构建source map 文件
        terserOptions: {
            // 生产环境移除console
            compress: {
                drop_console: true,
                drop_debugger: true
            }
        }
    },
    plugins: [
        vue()
        // createStyleImportPlugin({
        //   resolves: [ElementPlusResolve()],
        //   libs: [
        //     {
        //       libraryName: 'element-plus',
        //       esModule: true,
        //       resolveStyle: (name: string) => {
        //         return `element-plus/theme-chalk/${name}.css`
        //       }
        //     }
        //   ]
        // })
        // styleImport({
        //   libraryName: 'vant',
        //   esModule: true,
        //   ensureStyleFile: true,
        //   resolveStyle: (name) => {
        //     name = name.slice(3)
        //     return `element-plus/packages/theme-chalk/src/${name}.scss`
        //   },
        //   resolveComponent: (name) => {
        //     return `element-plus/lib/${name}`
        //   }
        // })
    ]
})
